c語言中定義指針的疑問,關於c語言指針的概念問題

本文目錄一覽:

關於c語言指針應用的一些疑問?

1: 只是類型變化,其值是不變的。

2,3.1:沒問題

3.2:沒啥技巧,這個就是一個記憶過程,把課本上關於運算符結合順序和優先級的內容多看看

3.3:當然不是,這只是取這個指針指向的數組的下標為act_e-header.s.d_size的元素而已

4:這是地址比大小。如果地址在同一個數組中當然有意義,數組中的元素總是按順序排的,地址小的下標也小

c語言指針的疑問

你是自學還是老師教到這裡了?

你要改變傳遞參數的值, 就要傳入該參數變量的地址, 哪怕它本身就是一個指針變量

//或者把主函數中的p,q變量當作是一個int變量,但是在函數中取得其指向的值時要顯式轉換為int*

void swap(int * p,int * q)

{

int t = *p;

*p=*q;

*q=t;

printf(“swap函數排序*p=%d,地址是%d,*q=%d地址是%d\n\n”,*(int*)p,*p,*(int*)q,*q);

return;

}

int main(void)

{

int a =20,b=10 ,*p = a,*q= b;

printf(“原來主函數a地址是%d,b地址是%d,p和q是%d和%d\n\n”,a,b,p,q);

swap(p,q); //若ab則交換地址,實現不改變ab的值且排序

printf(“再次打印:a=%d,b=%d,*p=%d,*q=%d,p地址%d,q地址%d\n”,a,b,*p,*q,p,q);

return 0;

}

C語言指針問題

指針就是地址,而指針變量就是存放地址的變量,比如int

*p;*p整個來看就是變量,和變量的含義是一樣的,而p表示的才是指針變量,裡面存的是一個地址(指針);*p表示的是去這個地址的內容,也就是相當於變量。所以int

a,*p實際上定義的都是變量。是取址運算符,n是去變量n存儲單元的地址,n也就是一個指針(地址),指針和地址的意義其實是一樣的。指針變量就是可以存放不同指針的變量。指針加上*,表示的是取指針存儲單元的內容。和變量是一樣的。指針這裡很難理解的,你光靠別人說的是理解不了的,好好看看書上的解釋,再自己變成試驗。指針就是地址,地址就是指針,指針變量就是存放不同指針/地址的變量,指針變量前面加*就是取指針/地址存儲單元的內容。

關於c語言中指針的小疑惑!

你看到的*p1=a應該是在定義的時候就給值的情況比如: int *p=a

而p1=a應該是定義之後給值的情況比如: int *p; p=a;

C語言規定,可以在定義時給值的

關於C語言指針的一個疑問?

int *p=a;這是定義p,並對p賦值

*p=a;這是對*p賦值

兩者不一樣

關於C語言指針定義的問題

a是行指針,也就是指向一個包含3個int一維數組的指針(地址就是指針,a是指針常量,p是指針變量)。你要將a賦值給p,就要用行指針來接,所以你聲明的p是指向一個包含3個int的指針p;如果聲明的是int

*p,p就是指向int的指針,數據類型不匹配。

輸出的話,可以這樣p[i][j],上面說了,a,p都是地址,a能做的,p就能,只是說p是可變的,a不是。

當然你可以強轉:

int*p;

p=(int*)a;

但是這樣的話你的p是,指向int的指針,

輸出就不能那樣了,改為:

printf(“%d”,*(p+3*i+j));

或者

printf(“%d”,p[3*i+j]);

就是把二維當一維,直接看元素在第幾個。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/240406.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 12:21
下一篇 2024-12-12 12:22

相關推薦

  • Python3定義函數參數類型

    Python是一門動態類型語言,不需要在定義變量時顯示的指定變量類型,但是Python3中提供了函數參數類型的聲明功能,在函數定義時明確定義參數類型。在函數的形參後面加上冒號(:)…

    編程 2025-04-29
  • AES加密解密算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES算法,並對實現過程進…

    編程 2025-04-29
  • 學習Python對學習C語言有幫助嗎?

    Python和C語言是兩種非常受歡迎的編程語言,在程序開發中都扮演着非常重要的角色。那麼,學習Python對學習C語言有幫助嗎?答案是肯定的。在本文中,我們將從多個角度探討Pyth…

    編程 2025-04-29
  • Python定義函數判斷奇偶數

    本文將從多個方面詳細闡述Python定義函數判斷奇偶數的方法,並提供完整的代碼示例。 一、初步了解Python函數 在介紹Python如何定義函數判斷奇偶數之前,我們先來了解一下P…

    編程 2025-04-29
  • 指針Python:為什麼Python中不需要使用指針?

    在Python中,指針的使用不像其他語言一樣那麼常見。這是因為Python有自己的內存管理方式,所以在大多數情況下,不需要顯式地使用指針。那麼,為什麼Python中不需要使用指針呢…

    編程 2025-04-29
  • Python符號定義和使用方法

    本文將從多個方面介紹Python符號的定義和使用方法,涉及注釋、變量、運算符、條件語句和循環等多個方面。 一、注釋 1、單行注釋 # 這是一條單行注釋 2、多行注釋 “”” 這是一…

    編程 2025-04-29
  • Python被稱為膠水語言

    Python作為一種跨平台的解釋性高級語言,最大的特點是被稱為”膠水語言”。 一、簡單易學 Python的語法簡單易學,更加人性化,這使得它成為了初學者的入…

    編程 2025-04-29
  • Python中的隊列定義

    本篇文章旨在深入闡述Python中隊列的定義及其應用,包括隊列的定義、隊列的類型、隊列的操作以及隊列的應用。同時,我們也會為您提供Python代碼示例。 一、隊列的定義 隊列是一種…

    編程 2025-04-29
  • OpenJudge答案1.6的C語言實現

    本文將從多個方面詳細闡述OpenJudge答案1.6在C語言中的實現方法,幫助初學者更好地學習和理解。 一、需求概述 OpenJudge答案1.6的要求是,輸入兩個整數a和b,輸出…

    編程 2025-04-29
  • Python按位運算符和C語言

    本文將從多個方面詳細闡述Python按位運算符和C語言的相關內容,並給出相應的代碼示例。 一、概述 Python是一種動態的、面向對象的編程語言,其按位運算符是用於按位操作的運算符…

    編程 2025-04-29

發表回復

登錄後才能評論