C语言 什么时候用取地址什么时候不用取地址,符号讲解
生活随笔
收集整理的這篇文章主要介紹了
C语言 什么时候用取地址什么时候不用取地址,符号讲解
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
情況一:
&是一個取地址運算符
&a是一個表達式,其功能是求變量a的地址
scanf函數的一般形式為:scanf("格式控制字符串",地址列表);
scanf輸入的是地址,printf輸出的是值,如下舉例說明
運行結果如下
由上,我們一定要分清變量的地址和變量的值之間的關系,例如:
a = 567
a為變量名,567為變量值,&a為變量的地址
情況二:
當變量是指針類型時,不需要取地址符號,指針指向的是某一個存儲單元的首地址。
當變量是數組,不需要取地址符號,數組名本身指向的就是這個數組的首地址。
其它類型變量需要用&取地址符號。
實戰1:
在這里有的同學就會問,啊,小編,你不是說當變量是數組,不需要取地址符號嘛,那我下面這個例子怎么輸入了數沒有反應,輸出語句什么都輸出不出來
小編修改上面的代碼為
#include<stdio.h>void main() {double a[2],s = 0;for(int i = 0;i<2;i++) {scanf("%lf",&a[i]);s += a[i];}printf("s:%f\n",s); }注意:要在a[i]前面加取地址符號,因為在情況一中我們已經說過,scanf輸入的是地址,a[i]代表的是i號下標的值,而不是地址,所以我們要為數組的每一個下標分別賦值,也就是&a[i]
&a[0]就是0號下標的地址,&a[1]就是1號下標的地址
實戰2
# include <stdio.h> int main(void) {char str[10]; //str是string的縮寫, 即字符串printf("請輸入字符串:");scanf("%s", str); /*輸入參數是已經定義好的“字符數組名”, 不用加&, 因為在C語言中數組名就代表該數組的起始地址*/printf("輸出結果:%s\n", str);return 0; }以上就是小編在學習c語言過程中遇到的問題和總結,喜歡的關注!
總結
以上是生活随笔為你收集整理的C语言 什么时候用取地址什么时候不用取地址,符号讲解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言 编写程序:由键盘输入一个字符判断
- 下一篇: C语言 一个字符常量占几个字节