質問: ポインタについて C言語のポインタについて質問です。 よくプログラミング中の演算で *p - '0' (*pはポインタ) という表現を見ますが、-'0'は何を意味してるのでしょうか
回答: /* 2013/12/21 03:05:58 */ #define _CRT_SECURE_NO_WARNINGS #include #include int main(){ _char__dgt[]={"1234567890"}; _char__*p,*q; _int__ num=0; _ _printf("asciiコードを利用した文字列→整数変換\n"); _for(p=dgt;*p;p++){ __num = 10*num+(*p-'0'); __printf("'%c' %d %d %d\n",*p,*p,*p-'0',num); _} _printf("標準関数による文字列→整数変換\n"); _printf("atoi(\"%s\")=%d\n",dgt,atoi(dgt)); _printf("atol(\"%s\")=%d\n",dgt,atol(dgt)); _printf("strtol(\"%s\",&q,10)=%d\n",dgt,strtol(dgt,&q,10)); _ _return 0; } /* 実行出力:画面 asciiコードを利用した文字列→整数変換 '1' 49 1 1 '2' 50 2 12 '3' 51 3 123 '4' 52 4 1234 '5' 53 5 12345 '6' 54 6 123456 '7' 55 7 1234567 '8' 56 8 12345678 '9' 57 9 123456789 '0' 48 0 1234567890 標準関数による文字列→整数変換 atoi("1234567890")=1234567890 atol("1234567890")=1234567890 strtol("1234567890",&q,10)=1234567890 */