Objective-C sizeof和三元運算子

2019-10-16 23:15:46

Objective-C中還有其他一些重要的運算子,包括sizeof?:三元運算子,Objective-C語言也都支援。

運算子 描述 範例
sizeof() 返回變數的大小 sizeof(a), 這裡如果變數a是整數,則將返回:4
& 返回變數的地址。 &a將返回變數的實際地址。
* 指向變數的指標。 *a將指向變數。
? : 條件表示式 如果條件為真?然後是X值:否則為Y

例子

嘗試以下範例來了解Objective-C程式設計語言中可用的所有其他運算子 -

#import <Foundation/Foundation.h>

int main() {
   int a = 4;
   short b;
   double c;
   int* ptr;

   /* example of sizeof operator */
   NSLog(@"Line 1 - Size of variable a = %d\n", sizeof(a) );
   NSLog(@"Line 2 - Size of variable b = %d\n", sizeof(b) );
   NSLog(@"Line 3 - Size of variable c= %d\n", sizeof(c) );

   /* example of & and * operators */
   ptr = &a;    /* 'ptr' now contains the address of 'a'*/
   NSLog(@"value of a is  %d\n", a);
   NSLog(@"*ptr is %d.\n", *ptr);

   /* example of ternary operator */
   a = 10;
   b = (a == 1) ? 20: 30;
   NSLog(@"Value of b is %d\n", b );

   b = (a == 10) ? 20: 30;
   NSLog(@"Value of b is %d\n", b );
}

執行上面範例程式碼,得到以下結果:

2018-11-14 05:18:49.270 main[174436] Line 1 - Size of variable a = 4
2018-11-14 05:18:49.271 main[174436] Line 2 - Size of variable b = 2
2018-11-14 05:18:49.271 main[174436] Line 3 - Size of variable c= 8
2018-11-14 05:18:49.271 main[174436] value of a is  4
2018-11-14 05:18:49.271 main[174436] *ptr is 4.
2018-11-14 05:18:49.272 main[174436] Value of b is 30
2018-11-14 05:18:49.272 main[174436] Value of b is 20