char ch;
printf("input a character:");
scanf(" %c",&ch); //在%c之前留一空格,則scanf會略過輸入的空白格而取第一個出現的字符。否則若按空白鍵就會被直接scanf去。
printf("%c",ch);
return 0;
}作者: enter 時間: 2015-7-2 18:56
#include <stdio.h>
#include <stdlib.h>
void test(int *);
int main(void){
int x=123;
int *p=&x;
test(p); //這裡是傳入x的位址,p=&x
return 0;
}
void test(int *j) //這裡*j表示要傳入指標所代表的位址
{
printf("%d",*j); //這裡*j則是表示指標代表位址的那個值
} 作者: enter 時間: 2015-7-22 15:26
#include <stdio.h>
#include <stdlib.h>
struct book {
char name[20];
int price;
} *q1;
int main(void){
int x,y,*p;
struct book *q2;
p=&x;
q1=(struct book*)malloc(sizeof(struct book)); //結構的指標要先配置一塊記憶體,無論在哪宣都一樣
q2=(struct book*)malloc(sizeof(struct book));
printf("enter a number:\n");
scanf("%d",p); //一般指標就是位址,不用前面加上&
printf("you enter %d.\n",x);
printf("enter the name and price of book.\n");
gets(q1->name);//在字串前就不用&
scanf("%d",&q1->price); //但結構指標不知為何,在數字上前面還是要加上&
printf("the price for %s is %d.\n",q1->name,q1->price);
而如果要 *p1=*p2; 則其中一個需要先給予一個空間,p=(char *)malloc(80); 如此才能讓*p1,*p2都能cout。作者: enter 時間: 2015-9-14 16:44
return和exit()的區別:
相同點:
二者都是讓現有的執行函式結束。
相異點:
一、return是函數的結束功能,exit(0)則是來自系統的中止。
二、return之後的函式和程式會繼續進行,但exit(0)則會完全終止這個程式。
三、return的值取決於函式的回傳值型態,如果是void f()則寫return;即可,否則會寫return 0;之類的。
四、exit(0)表示程式正常結束,除0之外的數就表示程式是非正常結束,但這是你自己定的,程式還是跑完,只是寫非0的數最後會回報說failed。 作者: enter 時間: 2015-9-26 15:48 本帖最後由 enter 於 2015-9-26 15:55 編輯
char str[]=" ";//空字也算一個字
cout<<"Size of this string is: "<<sizeof(str)<<endl<<"Length of this string is: "<<strlen(str);
Size of this string is: 3
Length of this string is: 2
記憶體大小比字串長度多一,因為最後都要加一個 null('\0)結束字元。\n \t \a ....這些字符也算在長度之內。作者: enter 時間: 2015-9-29 22:26
C++之中,strlen()只能用於char型態的字串,而不適用於string型態的字串。作者: enter 時間: 2015-10-8 15:44
c++的 (a>b)?a:b輸出法:
(a>b) ? cout<<"a is bigger.\n" : cout<<"b is bigger.\n";作者: enter 時間: 2016-1-11 00:47
指標變數所占用的記憶體大小都是固定且一致的,視OS位元不同,占四位元或八位元都有。
int *p;
float *q;
char *c;
sizeof(p)==sizeof(q)==sizeof(c)==4 or 8 bytes
但
sizeof(*p)==4
sizeof(*f) == 8
sizeof(*c) == 1 作者: enter 時間: 2016-1-25 16:34
指標:
int arr[3][4];
arr[1] == &arr[1] == &arr[1][0] == arr+1 == *(arr+1)作者: enter 時間: 2016-2-17 01:45
c++中的 cin.get()是輸入一字元,而cin.getline()是輸入一字串。作者: return 時間: 2016-2-17 15:11
union的大小是以所設定的成員最大者為主。但 string 型別似乎不能用在 union 之中。作者: enter 時間: 2016-3-6 16:00
三種常數的宣告方式:
#define
const int
enum作者: enter 時間: 2016-3-31 15:13
#include <stdio.h>
#include <stdlib.h>
int main(void){
//int *x = 2; //不能直接宣告指標變數時立即賦值
int *x;
*x = 2;
(*x)++;
printf("%d\n",*x); //x變成3
*x++; //x變成0,因為此處x先被++(位址到下一格)再取值。 printf("%d\n",*x) 故值為0或其他亂數。