A. c語言,為什麼數組那裡要用&,數組不是不用嗎
數組本身是不用的,因為數組本身就是屬於引用類型的,用數組名字代表的是整個數組,而不能代表單個的元素,這幾年明顯是輸入其中一個值得,所以就正常的輸入一個特定類型的值,需要用取地址符號。
B. c語言讓數組實現右對齊的符號
#include <stdio.h>
#define n 10
int main()
{
int i=0, j=0;
while(i<n)
{
while(j <= n-i)
{
printf(" ");
j++;
}
while(j <=n)
{
printf("*");
j++;
}
printf("\n");
j = 0;
i++;
}
C. C語言中數組何時不用地址符號
數組名是指向數組第一個元素的指針,所以如果你直接使用數組名的時候是不需要取地址符的。如果你用了下標操作那就需要取地址符,比如:
int num[10];
直接使用num,那麼不用取地址符。如果你用num[1],通過scanf給其賦值,是需要取地址符的
D. C語言數組符號
scanf等輸入函數的連續調用可能會出現的問題。你一次調用scanf時將輸入送進內存時健入的回車鍵也是一個字元,而這次調用並不會接它,回車仍保留在輸入流中,因此當你接下來調用getchar的時候,正好把輸入流中的回車「0xa」讀了進來,直接等於了'\n',因此實際你的程序進入f1後直接就向下執行直至f1退出了。
E. c語言編程問題,符號數組。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
intmain(){
intn,i=0,cnt=0;
charsearch[100];
char**records;
scanf("%d",&n);
records=(char**)malloc(sizeof(char*)*n);
for(;i<n;++i){
records[i]=(char*)malloc(sizeof(char)*100);
scanf("%99s",records[i]);
}
scanf("%99s",search);
for(i=0;i<n;i++){
if(strcmp(records[i],search)==0){
++cnt;
}
}
printf("%d ",cnt);
}
F. C語言中如何用指針運算符來表示一個二維數組的元素及地址
二維指針,就是說第一維是指針,第二維還是指針;
拿*(*(a+i)+j)來說:a是數組的首地址吧,然後+i,就是說a地址向後偏移i位。就是a+i的地址了,注意,這里a+i只是地址,用*符號取出該地址的數據,就是*(a+i),這里*(a+i)就是第一維指針,它指的是地址,不是數據。
而且後面的*(a+i)+j就是說以*(a+i)為首地址,偏移j位,然後使用*取內容,這里就是第二維了,取到的數據就是實際數據了
G. C語言數組的下標
c語言中的下標是定義數組a[]和數組b[n],下標是用在數組中的;
a[1]和b[1]就是下標相同的一個元素,數組a[1]中的數滿足條件的之後就做移位計算,是減小左移,右移增加;
例:
inta[5]={1,2,3,4,5};
printf(「%d,%d,%d,%d,%d」,a[0],a[1],a[2],a[3],a[4]);//會輸出1,2,3,4,5
a[0]=10;
printf(「%d」,a[0]);//輸出10;
(7)c語言數組位置符號擴展閱讀
基本的算數運算符
(1)、+加法運算或正值運算符
4+4、+5
(2)、-減法運算或負值運算符
6-4、-10、-29
(3)、乘法運算
注意符號,不是x,而是;
(4)、/除法運算
注意符號,不是÷,也不是,而是/;
整數除於整數,還是整數。1/2的值是0,這個並不是二分之一,不會四捨五入,直接截斷取值;
(5)、%取余運算
取余:即兩個整數相除之後的余數;
注意:%兩側只能是整數,正負性取決於%左側的數值;
H. c語言編程輸入時為什麼一維數組要加地址符,字元數組就不用呢
因為字元數組,數組名本身就是指一個地址。
定義了字元型數組char name[10]。name有兩個含義:一個是代表著name這個數組第一個位置的地址,也就是name[0]的地址。可以說name就等價於&name[0]。
還有一種意思就是指代name整個數組。&name 就是整個數組的首地址。所以name和&name取得的地址是相同的。
(8)c語言數組位置符號擴展閱讀
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); ,第二種不容易理解也容易犯錯,有些編譯軟體也不支持會報錯。
I. c語言定義數組時'""符號和{}符號可以不用嗎
如果不是char型數組,就一定要有{},而且不能用「」。
如果是char型數組,可以用「」,也可以用{},但必須二選一,不能兩種都不用。而且,兩種的用法不同,「」是「abc」這種寫法,而{}是{『a』,『b』,『c』}這種寫法。
J. c語言如何在整數數組中做記號
這個沒有,c++標准庫中vector可以使用迭代器vector的end()函數返回指向vector尾部迭代器的下一位置。
如果你想實現這一功能,可以自定義一個index,或者指針ptr,來指向當前數組最後一個元素的下一位置。當然您需要自己維護這個變數。插入,刪除(模擬的刪除咯)等操作都需要修改這一變數。