編程地址符
比如
int a = 3;
int *p = &a; // 如果把&刪了,那麼指針p指向的是值,不是地址,這是不允許的
㈡ c語言編程輸入時為什麼一維數組要加地址符,字元數組就不用呢
因為字元數組,數組名本身就是指一個地址。
定義了字元型數組char name[10]。name有兩個含義:一個是代表著name這個數組第一個位置的地址,也就是name[0]的地址。可以說name就等價於&name[0]。
還有一種意思就是指代name整個數組。&name 就是整個數組的首地址。所以name和&name取得的地址是相同的。

(2)編程地址符擴展閱讀
name和&name區別:
不同點在於:name+1表示的是數組第二個元素的地址,而&name+1表示的是整個數組後又一個name數組的首地址,即&name[10]後一個新的name數組的首地址。例如:
#include<stdio.h>
int main(void)
{
char name[10]={"hello csdn"};
printf("name+1的地址:%p ",name+1);
printf("&name+1的地址:%p ",&name+1);
return 0;
}
所以說scanf("%s",name);和scanf("%s",&name);執行後的結果是一樣的,都是name的首地址,都是給字元數組name賦值。推薦用 scanf("%s",name); ,第二種不容易理解也容易犯錯,有些編譯軟體也不支持會報錯。
㈢ C語言中 用scanf函數輸入字元串數組,取地址符&是不用輸的,如果輸了取地址符算錯么 ,或者含義不一樣么
一般變數使用取地址符,是獲取其地址,即為指向該變數的指針。
數組名就是數組的首地址,指向該數組的第一個元素的指針,只不過是常量指針而已。所以不用再加取地址符。
要加的話可以如下:
char str[10];
scanf("%s", &str[0]); // 取第一元素的地址,等價於數組名 str
㈣ c語言中取地址符和*有什麼區別
c語言中取地址符和*有兩點區別:
一、p指令:
聲明中: * 表示指針,例如: int *p,p是指針,指向整型量。*p表示指針指向的整型量的值。
語句中,p表示指針指向的地址。如果p是指針,沒有 &p 形式。
二、 x指令:
聲明中:x是整型量。&x是整型量x的地址,不是指針。
語句中:x是整型量x的值。&另一用途是按位運算符,按位* 是乘號。

(4)編程地址符擴展閱讀:
C語言中常見符號的作用:
1、 ? x:y,類似於if語句,例如: x>9?50:100; 意思是x是否大於9 ,是的話就輸出50,不是的話就輸出100。
2、c語言中,!的作用是邏輯非,例如:!a 凡是a不等於0,那麼輸出都是0,只有當a等於0時,輸出的才是0。!=意思是不等於,一般應用與判斷 if(a!=b)。
3、c語言中,&&表示邏輯且(交集) ,||表示邏輯或(並集)。實際上兩者也是用來輸出正確與錯誤,也就是輸出0或1,判斷的意思。
㈤ c語言函數參數里的取地址符號是什麼意思
就是找到這個變數的內存地址,直接讀寫
例如:scanf("%d",&a);
就是找到a的地址,把讀入一個數寫到a 的地址中
在例如
p=&a;
就是讓指針p指向a的內存地址,這樣直接對內存讀寫.有利於提高操作速度.
㈥ 在使用指針編程時,如何正確表達數據的地址
char c='h'
char* p=&c
㈦ C語言中地址符究竟是什麼
地址符& 就是獲得一個變數/常量/函數的內存地址,沒有別的含義。
scanf中,使用地址符,是因為scanf需要的是指針變數(因此指針變數不需要地址符),而普通變數需要通過地址符轉譯為指針使用。
charc,*p;
c='a';
p=&c;//這是地址符的「真諦」
scanf("%c",&c);
scanf("%c",p);
注意兩個scanf語句都是正確的。
㈧ c語言取地址符有什麼用,為什麼scanf一定要用&
取地址符的作用是告訴系統定義的變數的值存放在內存空間的地址,scanf函數就根據這個地址值定址,然後從這個地址空間中取出我需要的數據值,對於變數來說,只能通過&a的方式獲取到該變數在內存中的地址,對於指針變數和數組,就不需要這個取地址符了。代碼說明如下:
//變數
inta;
scanf("%d",&a);
//指針
inta,*p;
p=&a;
scanf("%d",p);
//數組
inta[10];
for(inti=0;i<10;i++)
scanf("%d",a+i);//a+i<===>&a[i]
㈨ c程序設計中地址符&必須要寫嗎
在C語言中,數組的名字本身就是一個指針即為起始地址,字元數組也是一樣的。比如
int a[2] = {1,2};
int *p = a; //a本身就是一個指針,它表示數組的起始地址。
char str[20] = "hello";
char *pstr = str; //str本身就是一個指針,它表示數組的起始地址
數組的名字,等同於第一個元素的地址。以上面數組a和str為例,a本身是個地址,它等同於&a[0]獲取的地址。str等同於&str[0]。
