本文目錄一覽:
- 1、c語言中,a 和a[] 有什麼區別
- 2、C語言中’a’和”a”有什麼區別?
- 3、c語言”a”和’a’的差別
- 4、利用c語言求級數a,aa,aaa,aaaa,aaaaa,…… 的前n項和,a和n由鍵盤輸
- 5、C語言 a+aa+aaa+…
c語言中,a 和a[] 有什麼區別
a[]比a少一維,我具體給你解釋下。
幾個元素可以組成數組,而幾個一維數組可以組成二維數組,如此一直增加維數。
比如說a[0]=2,a[1]=1,a[2]=3,組成一個一維數組,這就是a.但是,你要注意,a不是直接把這些東西都存着的,a只存首地址。
假設定義了一個二維數組a[3][3].這時候a[0],a[1],a[2]就不再是元素了,而代表的是一個有三個元素的一位數組,而此時的a就是一個二維數組。如果感覺這個有點困難沒關係,等學習了指針什麼的久很好理解這個了。
再說說你給的程序,你是不是在疑問為什麼gets()直接給str1 就可以了?還有那個輸出函數,為啥只用給str1就可以?
這得給存儲方式有關,字符串就是字符的二維數組,gets()需要輸入字符串的首地址,這個還算好理解,因為你應該學過了scanf()了,二者差不多,關鍵是為什麼輸出函數直接就寫了str1呢?printf()之前你學的一般都是(printf(“%d”,a[1]));這種類型的。這裡為啥要填一個地址參數呢?這是因為你前面是%s s代表字符串,字符串本身就是二維的,因此,你當然不能只給他一個單獨的元素了,那麼,你給了首地址他如何知道你這個字符串是啥呢?因為字符串都是順序存儲的,更重要的是字符串在結尾處有個標誌“/0”,因此,你只要給力他首地址,他就知道從哪裡開始,從哪裡結束了。
純手打,望採納。
C語言中’a’和”a”有什麼區別?
1、本質區別
雙引號裡面的是字符串, 而單引號裡面的代表字符。
2、輸出區別
str = “a”輸出的就是a這個字母;
str = ‘a’輸出的測試65
3、底層區別
用單引號引起的一個字符實際上代表一個整數,整數值對應於該字符在編譯器採用的字符集中的序列值。
擴展資料:
C語言是一個有結構化程序設計、具有變量作用域(variable scope)以及遞歸功能的過程式語言。
C語言傳遞參數均是以值傳遞(pass by value),另外也可以傳遞指針(a pointer passed by value)。
不同的變量類型可以用結構體(struct)組合在一起。
只有32個保留字(reserved keywords),使變量、函數命名有更多彈性。
部份的變量類型可以轉換,例如整型和字符型變量。
通過指針(pointer),C語言可以容易的對存儲器進行低級控制。
預編譯處理(preprocessor)讓C語言的編譯更具有彈性。
c語言”a”和’a’的差別
“a”是一個字符串。在C中,字符串存儲的時候會在最後自動加入‘\0’這個字符。在操作這個字符串的時候,比如讀取的時候。遇到‘\0’就表示這個字符串完了。而‘a’是一個字符。用十進制數表示是97,不信你可以用“%d”嘗試查看‘a’對應的數值大小。希望對你能有幫助吧
利用c語言求級數a,aa,aaa,aaaa,aaaaa,…… 的前n項和,a和n由鍵盤輸
//#include “stdafx.h”//If the vc++6.0, with this line.
#include “stdio.h”
int main(void){
int a,n,sum=0,x=0;
while(1){
printf(“Input a n(0=a=9, n Pint)…\n”);
if(scanf(“%d%d”,a,n),a=0 a=9 n0)
break;
printf(“Error, redo: “);
}
while(sum+=(x*=10)+=a,–n);
printf(“The result is %d\n”,sum);
return 0;
}
C語言 a+aa+aaa+…
題目:
輸入兩個整數a和n。(1≤n≤14,1≤a≤9),計算 a+aa+aaa+…
分析:
這裡n值達到了14,遠超了整數的範圍,但未超出double類型數據有效範圍,因此,可用double來存儲n個a的結果。整形會溢出。
實現過程:
定義一個double變量da,累加結果變量sum,初始化為0
定義兩個整形變量a n用來存儲輸入數據
循環生成a, aa,aaa等數據,存儲到da中,進行累加 : da=da*10+a; sum+=da ;
循環結束後,用%.0f輸出累加結果(看起來象整數)
參考代碼:
原創文章,作者:FDSE,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/132264.html